package mysql;

import java.sql.*;

/**
 * 一.使用 JDBC连接 数据库 Mysql
 * 1.maven仓库下载对应mysql版本的jar包
 * 2.mysql服务器必须启动【WampServer】
 * 3.加载数据库驱动【mysql】
 * 4.获取数据库链接【mysql-用户名： root，密码：空】
 * 二.链接成功--CRUD 增加操作
 * 1.test库 创建表person 给三个字段 id、name、address
 * 2.静态sql增加
 * */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
//        3.加载驱动【注册驱动程序】
//        JDBC规范标准 要求：链接对应数据库必须先注册‘驱动程序’
//        告诉JDBC 现在链接什么种类的数据库
//        Class.forName() 通过反射加载对应数据库版本驱动类
          Class.forName("com.mysql.jdbc.Driver");
//        获取mysql数据库的链接
          String username="root"; // mysql 数据库用户名
          String password="";     // mysql数据库密码
//        url链接地址：mysql
//        jdbc：mysql：//ip地址：端口号/库名?characterEncoding=utf-8
          String url="jdbc:mysql://localhost:3308/test?characterEncoding=UTF-8";
//        DriverManager 工具类，功能获取数据链接：url、用户名和密码
//        getConnection方法，链接不同版本的数据看库的方法,链接成功，返回Conn
          Connection conn = DriverManager.getConnection(url,username,password);
          System.out.println("测试链接是否成功"+conn);

//        5.编写静态添加sql操作【字符串】
          String sql="insert into person values(1,'卧底','河北省定州市')";
//        String sql="delete from person where id=1";
//        String sql="update person set name=‘韩垆轲’ where id=1";
//        6.执行静态sql【增加操作】 执行数据库中的增删改查操作，返回Statement对象
//        Statement对象执行静态sql
//        6.具备执行数据库中增删改操作
          Statement st=conn.createStatement();
//        6.2执行静态sql:execuUpdate(静态sql)增删改操作，返回值int类型
//        int类型帮助记录成功条数
          int rows=st.executeUpdate(sql);
          System.out.println("增加"+rows+"记录");
//        7.关闭资源
          st.close(); conn.close();
    }
}
/**
 * 昨日重点
 * 1.JDBC规范  链接各种数据库 数据库闭源
 * 2.maven仓库下载对应jar包---java---面向对象【类】
 * mysql版本 5.5  mysqljdbc
 * oracle版本 10g ojdbc8
 * 3.编程步骤---JDBC规范
 * 3.1加载驱动，JDBC去链接数据库，每个数据库都有自己的驱动
 * Class.forName("com.mysql.jdbc.Driver") 反射技术【固定结构】
 * Mysql版本5.X 驱动：com.mysql.jdbc.Driver
 * Mysql版本8.X 驱动：com.mysql.cj.jdbc.Driver
 * java->JDBC标准规范->Driver接口：驱动接口，各种数据库
 * JDBC承认写对应驱动接口【所有数据库接口，确定什么数据库】
 * 3.2获取链接，Mysql每个数据库、用户名、密码、url用字符串接收
 * String username=“root”; ---Java写法
 * String password=“”;
 * url--->Mysql链接路径 --固定结构
 * jdbc : mysql ://localhost:3006/mi?characterEncoding=UTF-8;
 * 协议 : 子协议 ://IP地址    端口号/库名?
 *                 本机
 *                 127.0.0.1
 * Java获取链接--通过DriverManager接口：工具类，可以链接各种数据库
 * DriverManger.getConnection(url，username，password);
 * 具体链接方案给方法：getConnection()地址、用户名、密码，确定无误
 * 返回一个对象Connection对象【Java与对应数据库链接成功】
 * 打印Connection对象--打印对象--链接成功
 * 4.JDBC只能做 CRUD 增删改查 --Mysql创建表、库
 * 4.1Mysql--->使用库--->创建表
 * 4.2Java--->CUD增改删操作
 * 4.3Java--->确定数据库链接成功【con】--->调取执行增删改查操作
 *        --->返回Statement对象：执行静态sql
 * 代码：Statement st=con.createStatement();
 * 4.4Java --->Statement对象提供方法：executeUpdate();
 *        --->此方法执行sql：增、删、改操作---成功 几 条记录
 * 代码：int rows=st.executeUpdate(sql);
 * 打桩：打印成功多少条记录
 * 5.关闭资源【倒置法】关闭顺序：①Statement--执行sql对象 ②Connection--链接数据库成功对象
 * */